Readme for
Pointer Tables
	by rveach

A very standard program that can help extract/insert script files from games.

================================================================================================================

NEW to version 2.0:
	CUSTOM POINTERS!!!
	PT Line Text (see 'Text versus Pointer Info')
	text can be seperated through multiple lines (see 'Text versus Pointer Info')
	Don't have to keep re-opening files if you changed an option or the file, the program will always re-open them everytime.

================================================================================================================

Extract
	To extract a script, you have to at least know the location of the text in the ROM. Everything else is completely optional.
	The X000 offset is the difference between the start of the text and the first value of the table in numerical order (xoffset = txtstart - tblstart). If you don't know this value or not sure how to calculate it, the program will do this for you as long as you have all the other values (Text Start & End and Table Start & End).
	There are certain options that allow you to change the type of text/table being used (ie: Custom Pointer Tables and Pointer Table Searcher).
	The Table file is optional. This is only here for if you want to see words instead of hex numbers.
		Note: Table files follow most thingy rules. You have unlimited text size but this program only supports converted values up to 3 bytes. This program won't put actual new lines in because that disrupts the inserting process.
			Examples:	Good- "F0=[wizard]"
					Bad- "01020304=[name]" (because it has more than 3 bytes as a value)

	The button "ReDo Script" allows you to rewrite a script made by this program. This is mostly used incase you update the Table file and want to spread the updates to all other script files faster without having to retype.

	Note: This program will not save the text spit out into the main edit box. It is up to you to copy it all and save it to a file.
		EVERYTHING THAT IS DISPLAYED IS NEEDED FOR THE INSERTION PROCESS!

================================================================================================================

Insert
	To insert a script all you need is the script file and the ROM (Table file is optional).

	Rules for the inserted script are very strict and must be followed for insertion to be completed successfully.
		1) Nothing above the '------'s can be touched unless you are certain what your doing.
		2) NO NEW LINES MUST BE ENTERED INTO THE MAIN SCRIPT. Doing so will confuse the program and will disrupt the insertion process. You can only have a max of 2 lines for each section of text (unless you don't have the pointer table. IE, 1 line for the pointer table address and 1 line for actual text to be changed/inserted).
			Some people leave the original text and put the translated text below/above it. This ISN'T allowed when you insert that script and WILL disrupt the insertion process.
		3) You CAN REMOVE lines of text (as with its pointer table address) from the script.
			You CAN also ADD lines of text (as with a pointer table address if there are pointer tables for the other text) as long as you know what your doing.
		4) For more pointer table extras and custom tables, please see the bottom of this file.

Check Insert
	This will check the length of the script if it would be inserted and if all the texts are in the Table file.

	This is pretty easy to use and doesn't require much, but the rules for the insert script must be followed (see above in the Insert Section).

================================================================================================================

		--Extra info--

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

	-Text versus Pointer Info-

New to 2.0 is a extra thing that says "PT Line Text". This will now be added to the pointer table information line, and is STRICTLY used to differentiate between a text line that will be inserted as text, or a pointer table line, which contains information on the location of the pointer table for the text.
The main reason why this line is needed is because now you can seperate text with a new line (that won't get inserted btw), for better reading long lines of text or to format it.
	Note: The default 'PT Line Text' is a tab character, which may not show correctly in the edit box.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

	-Pointer Tables-

If you notice for some games u may see something like:

1069F r106A1
106A1
 You [End]

The 'r' means repeat. That 1069F will have the same pointer value as 106A1, thus be pointing to the same text. This is the ONLY time that a pointer table ISN'T followed by text but another pointer table (or end of file).
	Note: It would be best on insertion if you move the pointers with the 'r' to the end, as leaving it where it is will cause some problems.

There is also an option 'm', which means modify, which will change where that text is stored and move all the following texts after it, to go in the new place.

1069F m11450
 are [End]

	Note: This 'm' option must also be followed by text.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

	-Scattered Tables-

This will search the ROM for the first 5 values that match what the pointer table value should be. This is mostly used for if you don't know where the pointer table is or if its spread about and none of the other methods come close to matching its arrangement.
When the script is outputted it will look something like this.

2A5B 67BD A9DB (8066)
Where's my chicken![End]

As always the 2nd line is the text but the first line has the multiple pointer table values. The object is for you to select which one is the actual pointer and to erase the other values. The value in ()s is what the actual value of the pointer table should be and can be erased or left in.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

		--Other Info--

	-Read Mode-

Ascii: The input files (Table and Script files) only use standard ASCII text. (No foreign characters or characters with dots over them).
UTF7: The input files (Table and Script files) use only standard ASCII text and some "unusual" characters not found on English keyboards (ie characters with dots over them and Greek characters) (Foreign characters are still not allowed nor will be recognized).
UTF8: The input files (Table and Script files) can use standard ASCII text and foreign characters but NOT Greek or "unusual" characters.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

================================================================================================================



If you have any problems with the program, feel free to email me as long as it is problems with the PROGRAM.
Note: 2.0 is a very BETA version, please send me info on any problems with it immediately.
http://rveach.romhack.org
